package com.qfedu.hello.mybatis.dao;

import com.qfedu.hello.mybatis.entity.User;
import org.apache.ibatis.annotations.Param;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

/**
 * @auther asus
 * @date 2022/4/20 10:29
 */
public interface UserMapper {
    //根据ID查询用户
    User selectUserById(Integer id);

    //根据姓名查询用户
    User selectUserByName(String name);

    //根据名字和密码查询用户，如果是多参数推荐使用@Param指定参数名
    User selectUserByNameAndPwd(@Param("name") String name, @Param("password")String pwd);

    //根据名字和密码查询用户，传递map类型的参数
    User selectUserByNameAndPwdWithMap(Map<String,String> map);

    //根据名字和密码查询用户，传递user类型的参数
    User selectUserByNameAndPwdWithUser(User user);

    //根据用户名字模糊查询用户
    User selectUserByName1(String name);

    //根据ID删除
    int deleteUserById(Integer id);

    //根据ID删除多个  List
    int deleteUserByIdList(List<Integer> id);

    //根据ID删除多个  Array
    int deleteUserByIdArray(Arrays[] id);

    //添加员工
    int insertUser(User user);

    //添加多个员工
    int insertUserList(List<User> users);

    // 添加员工后回填主键ID,在员工对象中就可以获取到新增的id的值了
    int insertUserWidthId(User user);

    //更新
    int updateUser(User user);

    //动态更新
    int updateUserDymatic(User user);

    //动态sql查询
    List<User> selectUserByNameOrPwd(@Param("name") String name, @Param("pwd")String pwd);

    //使用分页插件查询
    List<User> selectAllUserWithPageHelper();
}
